Rotary encoders are the sensor of choice for generating a digital output to provide an accurate measurement of motion in terms of shaft angle position, velocity and direction of rotation. Encoders are often attached to high performance spindles in pre-press imagesetters systems, laser beam scanning systems, and high precision machine tools, etc. High accuracy spindles used in precision machine tools and laser scanning systems typically utilize a closed loop control system to achieve accurate speed control and rotor position registration.
The encoder typically has two or three signal channels, one of which is generally a one-pulse-per-revolution index channel, other signals being multiple-pulse-per-revolution data channels. The number of pulses per revolution of a data channel are typically between a few hundred to a few thousand depending on the resolution required for fine positional control. These signals are input to the control system to provide real-time feedback information on the position, velocity and rotational direction of the spindle.
The index channel pulse is used to indicate the beginning of each spindle revolution and the data channel(s) signal is used to show the angular position of the rotor within a revolution and the speed of the rotor. Usually the index channel is referred to as the "I" channel and the data channel is referred to as the "A" channel. For some types of encoders (such as quadrature type) there is an additional data channel referred to as the "Q" channel which provides information on the direction of spindle rotation.
To achieve high accuracy in speed and positional control, the timing variances (jitter) of the pulses have to be minimized. There are many types of jitters and one of the primary contributors to the jitters is caused by electrical noise which is coupled onto the index and data channel signals. The electrical noise causes spurious variations in the duration of a pulse since it effects the rising and falling edge transitions. Two known time related types of jitters are Zero-Delay Index-to-Data Jitter (zero-delay jitter) and Data-Pulse-to-Data-Pulse Jitter (pulse-to-pulse jitter or pulse-separation jitter).
The amount of zero-delay jitter for a typical encoder is in the range of 20 to 200 nanoseconds. It has been the industry practice to either: 1) tolerate this amount of jitter which translates into positional or speed errors which may not be acceptable for high accuracy applications, or 2) reduce the jitter at the price of significant signal distortion. Such signal distortion may cause signal recognition problems which introduces additional errors by erroneously placing the signal pulse(s) in an non-desirable position which limits the performance of the encoder during high speed operation.
The electrical noise also contributes to pulse-to-pulse jitter of the encoder data pulses which introduces certain positional errors into the control system.
FIG. 1A illustrates a prior art index pulse signal 100 of duration T.sub.i 102 having jitter 104 on the rising edge of the pulse. Voltage is plotted along the vertical axis and time is plotted along the horizontal axis. The rising edge of the index pulse signal 100 is used to indicate the beginning of a shaft revolution. A problem with the jitter 104 is that it may cause the index pulse signal rising edge to transition to the high state up to, for example, about 200 nanoseconds before or after its ideal transition time. Similarly, FIG. 1B illustrates jitter 106 in the form of electrical noise on the rising edge of a series of data pulses 108.
The timing variance caused by the jitter can lead to position and speed control inaccuracies which lead to control problems, such as introducing non-linearities into the control system.
Therefore, it is always desirable to keep zero-delay jitter and pulse-to-pulse jitter to a minimum.